package demo4;

/**
 * 子数组系列
 *      乘积为正数的最长子数组长度
 */
public class test4 {
    public int getMaxLen(int[] nums) {
        // 创建dp表
        int n = nums.length;
        int[] f = new int[n+1];
        int[] g = new int[n+1];
        // 初始化

        int ret = Integer.MIN_VALUE;
        for(int i=1;i<=n;i++){
            if(nums[i-1] > 0){
                f[i] = f[i-1] + 1;
                g[i] = g[i-1] == 0 ? 0 : g[i-1] + 1;
            }else if(nums[i-1] < 0){
                f[i] = g[i-1] == 0 ? 0 : g[i-1] + 1;
                g[i] = f[i-1] +1;
            }
            ret = Math.max(ret, f[i]);
        }
        return ret;
    }
}
